import 'reflect-metadata';
import * as dotenv from 'dotenv';
import * as path from 'path';
import { AppDataSource } from '@weubi/shared';

// 加载环境变量
dotenv.config({ path: path.resolve(__dirname, '../.env') });

async function runMigrations() {
  try {
    console.log('🔗 正在连接数据库...');
    
    // 初始化数据库连接
    await AppDataSource.initialize();
    console.log('✅ 数据库连接成功');
    
    console.log('🔄 开始运行数据库迁移...');
    
    // 运行迁移
    const migrations = await AppDataSource.runMigrations();
    
    if (migrations.length === 0) {
      console.log('📋 没有需要运行的迁移');
    } else {
      console.log(`✅ 成功运行了 ${migrations.length} 个迁移:`);
      migrations.forEach(migration => {
        console.log(`  - ${migration.name}`);
      });
    }
    
    console.log('🎉 数据库迁移完成！');
    
  } catch (error) {
    console.error('❌ 数据库迁移失败:', error);
    process.exit(1);
  } finally {
    // 关闭数据库连接
    if (AppDataSource.isInitialized) {
      await AppDataSource.destroy();
      console.log('🔌 数据库连接已关闭');
    }
    process.exit(0);
  }
}

// 运行迁移
runMigrations();
